home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 4
/
FM Towns Free Software Collection 4 - Disc 1.iso
/
t_os
/
magl
/
mag.h
< prev
next >
Wrap
C/C++ Source or Header
|
1991-10-18
|
4KB
|
129 lines
/* MAKI & MAG Library */
#ifndef NULL
#define NULL 0
#endif
#define FALSE 0
#define TRUE -1
#define EOC 0x1a /* End Of Comment */
#define CR 0x0d
#define LF 0x0a
#define BufSize 256
#define PLANE20 0x001c
#define PLANE21 0x0104
#define PLANE10 0x010c
#define PALNO 0xfd90
#define PALB 0xfd92
#define PALR 0xfd94
#define PALG 0xfd96
#define LINE200 0x01 /* 200ラインフラグ */
#define COL8 0x02 /* 8色フラグ */
#define DIGITAL 0x04 /* デジタルフラグ */
#define COL256 0x80 /* 256色フラグ */
#define DOS 0x40 /* DOS互換画面フラグ */
#define VRAM 0x20 /* 強制VRAM展開フラグ */
#define Other 0x00 /* 機種コードですよん */
#define MSX 0x03
#define PC88 0x88
#define X68K 0x68
#define Eseq 0xff
#define Scroll_UP 1
#define Scroll_DOWN 2
#define Scroll_RIGHT 3
#define Scroll_LEFT 4
#define Zoom_DOWN 5
#define Zoom_UP 6
typedef union {
struct { unsigned char h,l; } m;
unsigned short s;
} WORD;
typedef struct {
char header; /* ヘッダの先頭 */
char machine; /* 機種コード */
char rflg; /* 機種依存フラグ */
char screen; /* スクリーンモード */
short lx; /* 表示開始位置X */
short ly; /* 表示開始位置Y */
short rx; /* 表示終了位置X */
short ry; /* 表示終了位置Y */
int offa; /* フラグAのオフセット */
int offb; /* フラグBのオフセット */
int sizb; /* フラグBのサイズ */
int offp; /* ピクセルのオフセット */
int sizp; /* ピクセルのサイズ */
} MAGHEADER;
typedef struct {
char id[8]; /* MAKI識別子'MAKI01A ' or 'MAKI01B ' */
char comment[24]; /* セーバー作者コメント */
WORD sizb; /* フラグBのサイズ */
WORD sizpa; /* ピクセルAのサイズ */
WORD sizpb; /* ピクセルBのサイズ */
WORD tile; /* タイルデータのサイズ */
WORD lx; /* 表示開始位置X */
WORD ly; /* 表示開始位置Y */
WORD rx; /* 表示終了位置X */
WORD ry; /* 表示終了位置Y */
} MKIHEADER;
#if 0
typedef struct {
Mdir *next;
char fname[256]; /* パス&ファイルネーム */
char comment[81]; /* コメントの前から1ライン分 */
int header; /* ファイル先頭からのヘッダのオフセット */
int size; /* ファイルサイズ */
int lx,ly; /* 左上座標 */
int rx,ry; /* 右下座標 */
} Mdir;
#endif
/* Global Vari. */
extern MAGHEADER maghead; /* MAGのヘッダー */
extern MKIHEADER mkihead; /* MAKIのベッダー */
extern int siza;
extern char egbwork[]; /* EGBライブラリ用ワーク */
extern char pal[768]; /* 現在のパレット情報 */
extern char *flga,*flgb,*flg,*pix; /* flag&pixel格納アドレス */
/* 現在メモリに存在するイメージ情報 */
extern char *vram; /* イメージ格納アドレス */
extern int screen_mode; /* スクリーンモード(MAG互換) */
extern int image_mode; /* メモリ上のデータのモード */
extern int lx,ly; /* 左上座標 */
extern int rx,ry; /* 右下座標 */
extern char comment[81]; /* コメント */
/* MAKI Load Library */
extern int mki_get_head(FILE *fp);
extern int mki_decode(FILE *fp,int mode,int x,int y);
/* MAG Load Library */
extern int mag_get_head(FILE *fp);
extern int mag_decode(FILE *fp,int mode,int x,int y);
/* Display Library */
extern int display(int slx,int sly,int ssx,int ssy,int dx,int dy);
/*
* Memory to Vram copy function
* int slx,sly; Memory上の転送元左上座標
* int ssx,ssy; 転送サイズ
* int dx,dy; VRAM上の転送先左上座標
*/
extern int set_palette();
extern int stringcmp(char *s,char *d);
/* MAG Save Library */
/* 只今、工事中 :-) */